# -*- coding:utf8 -*-
# __author__ = "zhangying"
# __date__ = "2019/3/2 13:03"
import sys
sys.path.append("D:/PythonAppium")
from key_word.action_method import ActionMethod
from key_word.get_data import GetData
from util.server import Server
#调取get_data方法获取excel文件中元素的值


class RunMain:
    def run_method(self):
        server = Server()
        server.main()
        data = GetData()
        action_method = ActionMethod()
        lines = data.get_case_lines()
        for i in range(1, lines):
            # 第一步：获取操作步骤,列数默认第三列 i是行
            handle_step = data.get_handle_step(i)
            # 第二步：获取操作元素的key，列数默认第四列 i是行
            element_key = data.get_element_key(i)
            # 第三步 获取操作元素的value ,列数默认第五列 i是行
            handle_value = data.get_handle_value(i)
            # 第四步 获取预期结果元素element ,列数默认第六列 i是行
            expect_key = data.get_expect_element(i)
            # 第五步 获取预期步骤 ,列数默认第七列 i是行
            expect_step = data.get_expect_handle(i)
            # input()  login_button
            # input  str
            # None
            # 执行getattr反射
            # 获取到的是input-备注：输入框
            # 走action_method.py文件中input()方法，input()方法就是调用操作元素key,操作元素value
            # input()
            # input str
            # 执行开始
            # 一：先去执行一个步骤：例如input   input方法中要传，操作元素的key--element_key，操作元素的value--handle_value
            excute_method = getattr(action_method, handle_step)

            if element_key != None:
                excute_method(element_key,handle_value)
            else:
                excute_method(handle_value)
            # 第三 判断预期步骤是否为空，为空的话是不执行操作元素的value--export_step
            if expect_step != None:
                expect_result = getattr(action_method, expect_step)
                result = expect_result(expect_key)
                if result:
                    data.write_value(i,"pass")
                else:
                    data.write_value(i,"fail")


if __name__ == '__main__':
    run = RunMain()
    run.run_method()
